package org.tpdata.api.cdss.homepage;

import asserts.Asserts;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import common.Data;
import common.RunCaseJson;
import common.SetUpTearDown1;
import exceptions.TestNGRetry;
import io.qameta.allure.Story;
import io.restassured.RestAssured;
import io.restassured.response.Response;
import org.apache.log4j.Logger;
import org.testng.Assert;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import static common.TestStep.requestAndRespondBody;

public class getPatientList extends SetUpTearDown1 {

    Logger log = Logger.getLogger(getPatientList.class);
    @Story("首页-获取数据库患者列表")
    @Parameters({"uri"})
    @Test(retryAnalyzer = TestNGRetry.class,description = "数据库患者列表-没有关键字")

    public void runCase(String uri) {
        JSONObject json = new JSONObject();
        Data data = envSetUp();
//        Map<String,String > json=new HashMap<String, String>();
        json.put("access_token", data.getAccessToken());
        json.put("authToken", data.getAccessToken());
        json.put("uniqu_no", data.getUniquNo());
        json.put("operatorId", data.getUserId());
        json.put("authUserId", data.getUserId());
        json.put("userId", data.getUserId());
        json.put("authName", data.getUserName());
        json.put("org_ids", "true");
        json.put("page","1" );
        json.put("size", "10");
        json.put("startDate","");
        json.put("endDate","");
        log.info(json.toString());
        Response response = RunCaseJson.runCase(json, "get", uri);
        String jsonStr = response.asString();
//        log.info("响应报文：" + jsonStr);
        JSONObject obj = JSON.parseObject(jsonStr);
        JSONObject jsonObject=obj.getJSONObject("responseData");
        JSONArray contentArr = jsonObject.getJSONArray("content");

        String url = RestAssured.baseURI + ":" + RestAssured.port + "/" + uri;
        requestAndRespondBody(url,json,jsonStr);
        Assert.assertNotNull(contentArr.size());
    }

    @Story("首页-获取数据库患者列表")
    @Parameters({"uri","value"})
    @Test(retryAnalyzer = TestNGRetry.class,description = "数据库患者列表-有关键字")
    public void runCase1(String uri,String value) {
        JSONObject json = new JSONObject();
        Data data = envSetUp();
//        Map<String,String > json=new HashMap<String, String>();
        json.put("access_token", data.getAccessToken());
        json.put("authToken", data.getAccessToken());
        json.put("uniqu_no", data.getUniquNo());
        json.put("operatorId", data.getUserId());
        json.put("authUserId", data.getUserId());
        json.put("userId", data.getUserId());
        json.put("authName", data.getUserName());
        json.put("org_ids", "true");
        json.put("startDate","");
        json.put("endDate","");
        json.put("page","1" );
        json.put("size", "10");
//        json.put("org_ids", "true");

        JSONObject paramJson= new JSONObject();
        paramJson.put("key","mainDiag");
        paramJson.put("value",value);
        paramJson.put("andOr","");
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(paramJson);
        //"[{\"key\":\"mainDiag\",\"value\":\"咳嗽\",\"andOr\":\"\"}]"
       json.put("paramJson",jsonArray.toString());
        log.info(json.toString());

        Response response = RunCaseJson.runCase(json, "get", uri);
        String jsonStr = response.asString();
//        log.info("响应报文：" + jsonStr);

        JSONObject obj = JSON.parseObject(jsonStr);
        JSONObject jsonObject=obj.getJSONObject("responseData");
        JSONArray contentArr = jsonObject.getJSONArray("content");

        String url = RestAssured.baseURI + ":" + RestAssured.port + "/" + uri;
        requestAndRespondBody(url,json,jsonStr);
        Assert.assertNotNull(contentArr.size()); //判断数组列表不为空
    }





}
